package day13.thread05;

import java.util.concurrent.ArrayBlockingQueue;

/**
 * @author Xiao
 * @date 2021/8/6
 */
public class BlockQueueDemo01 {
    /**
     * BlockingQueue的核心方法：
     * 	put(anObject)：将参数放入队列，如果放不进去会阻塞；
     * 	take()：取出第一个数，取不到会阻塞。
     * 常见BlockingQueue：
       	ArrayBlockingQueue：底层是数组，有界（表示阻塞队列的内容有限）。
     * 	LinkedBlockingQueue：底层是链表，无界（表示阻塞队列的内容无限）。但不是真正的无界，最大为int的最大值。
     */
    public static void main(String[] args) throws InterruptedException {
        ArrayBlockingQueue<String> abq = new ArrayBlockingQueue<>(1);
        abq.put("汉堡包");
        System.out.println(abq.take());
        System.out.println(abq.take());
    }
}
